package com.gaber.collection;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;

/**
 * @author gaber
 * @date 2023/7/12 14:21:46
 * @description List ArrayList集合
 */
public class ArrayListTest {
    public static void main(String[] args) {
        ArrayList<String> sites = new ArrayList<String>();
        sites.add("Google");
        sites.add("Runoob");
        sites.add("Taobao");
        sites.add("Weibo");
        System.out.println(sites);

        //获取第二个元素
        String s = sites.get(1);
        System.out.println(s);

        //修改第二个位置的值
        sites.set(1,"Xiaohongshu");
        System.out.println(sites);

        //删除第四个元素的值
        String remove = sites.remove(3);
        System.out.println(remove); //删除的值
        System.out.println(sites); //删除之后的数组

        //计算ArrayList的长度
        System.out.println(sites.size());

        //遍历ArrayList for
        for (int i = 0; i < sites.size(); i++) {
            System.out.println(sites.get(i));
        }

        //排序安装字母排序
        Collections.sort(sites);

        //遍历ArrayList forEach
        for (String i: sites) {
            System.out.println(i);
        }

        // 对 sites 进行拷贝
        ArrayList<String> cloneSites = (ArrayList<String>)sites.clone();
        // Object cloneSites = sites.clone();
        System.out.println("clone" + cloneSites);

        //contains 判断是不是在这个数组中
        boolean isFlag = sites.contains("Google");
        System.out.println(isFlag);


        //Arraylist 对象转换为数组。
        String[] arr = new String[sites.size()];
        sites.toArray(arr);
        for(String item:arr) {
            System.out.println(item);
        }

        // removeIf() 方法用于删除所有满足特定条件的数组元素。
        sites.removeIf(e -> e.contains("Tao"));;
        System.out.println("删除后的 ArrayList: " + sites);

        //整数类型
        ArrayList<Integer> numbers = new ArrayList<>();
        numbers.add(20);
        numbers.add(14);
        numbers.add(98);
        numbers.add(8);
        numbers.add(12);
        Collections.sort(numbers);
        for (int i: numbers) {
            System.out.println(i);
        }
    }
}
